/**********************  菜单管理  *****************************/

	var _common = xbdunRequire("common");
	var menuNode = null;
	var _existMenuPlat = null;//在菜单中已经存在的平台
	
	$(function() {
		/************************   初始化平台的菜单树  ***************************/
		loadingTree({treeName:"menuTree",url:"100100101100",temp:{code:0}})
		/************************   加载菜单中的平台菜单  ***************************/
		loadMenuPlat();
		
		/************************   添加菜单  ***************************/
		$("#btn_100100101101").on("click",function(){
			if (menuNode) {
				if(menuNode.type==3){//按钮
					return _common.alert(true,"您选择的为按钮,不能继续往下添加!");
				}
				if (menuNode.level == 0) {//选中的为根目录
					loadPlatModal();
				}else{
					$('#frm_addOrModify').get(0).reset();
					$("#addOrModify_content_btn").hide(function(){
						$("#addOrModify_type").val("add");
						$("#menuName_label").text("父级目录");
						$("#menuName_info").val(menuNode.name);
						$("#addOrModify_content").slideDown();
					});
				}
			}else {
				_common.alert(true,"请从左侧选择父级目录");
			}
		})
		
		/************************   修改菜单  ***************************/
		$("#btn_100100101102").on("click",function(){
			if (menuNode) {
				if (menuNode.level == 0) {//选中的为根目录
					return _common.alert(true,"当前为根目录,不可以修改");
				}
				if (menuNode.level == 1) {//平台
					return _common.alert(true,"当前为平台菜单,请在平台设置里进行修改");
				}
				$('#frm_addOrModify').get(0).reset();
				loadUpdateMenuInfo(menuNode.id);
			}else {
				_common.alert(true,"请从左侧选择需要修改的菜单");
			}
		})
		
		/************************   删除菜单  ***************************/
		$("#btn_100100101103").on("click",function(){
			if (menuNode.level==0){
				return _common.alert(true,"根目录不能删除");
			}
			if(menuNode.isParent) {
				return _common.alert(true,"该菜单还存在子菜单");
			}
			_common.alert(true,"您确定要删除"+menuNode.name+"这个菜单吗",function(v){if(v==1){
				$("#addOrModify_content_btn").hide();
				$("#addOrModify_content_info").show();
				$("#content_info").empty().html("正在加载中...");
				$.post(webRoot+"/system/100100101103",{code:menuNode.id},function(reslt){
					if(reslt){
						if(reslt.success){
							reLoadMenuTree();
						}else{
							setTimeout(function(){
								$("#addOrModify_content_info").hide();
								$("#addOrModify_content_btn").show();
								_common.alert(true,reslt.subMsg);
							},1300)
						}
					}
				})
			}},2)
		})
		
		/************************   取消添加或修改菜单  ***************************/
		$("#btn_cancle").on("click",function(){
			$("#addOrModify_content").slideUp(function(){
				$("#addOrModify_content_btn").show();
			});
		})
		
		/************************   保存添加或修改菜单  ***************************/
		$("#btn_save").on("click",function(){
			$("#addOrModify_content").slideUp(function(){
				$("#addOrModify_content_info").show();
				$("#content_info").empty().html("正在加载中...");
				var temp = {code:menuNode.id};
				$("#frm_addOrModify").find("input[id^='txt_'],select[id^='sel_']").each(function(){
					if ($(this).attr("name")!=undefined){
						temp[$(this).attr("name")]=$(this).val();
					}
				})
				
				var type = $("#addOrModify_type").val();
				if (type=="add") {
					submitData("100100101101", temp, {success:function(){reLoadMenuTree()},fail:function(){$("#addOrModify_content_info").hide();$("#addOrModify_content_btn").show();}});
				}else if (type=="modify"){
					submitData("100100101102", temp, {success:function(){reLoadMenuTree()},fail:function(){$("#addOrModify_content_info").hide();$("#addOrModify_content_btn").show();}});
				}else{
					_common.alert(true,"系统繁忙,请稍后再试!");
				}
			});
		})
	});
	
	
	/*************
	 * 	加载树
	 * 
	 * @param params {loading 是否显示加载框,open 是否全部展开,treeName 树形结构ID,url 查询地址}
	 * @param setting
	 * @returns
	 */
	function loadingTree(params){
		var setting = {
			data:{
				key:{title:"title"},
				simpleData:{enable:true,pIdKey:"pid"}
			},
			view:{
				fontCss:{'font-weight':'bold'},showIcon:false
			},
			callback: {
				beforeClick:beforeClick,
				onClick:onClick
			}
		};
		$.ajax({
			type : "post",
			url : webRoot+ "/system/"+params.url,
			data:params.temp,
			async:false,
			success : function(data) {
				if (data.data) {
					if (data.success) {
						$("#loding_info").html("");
						$.fn.zTree.init($("#"+params.treeName), setting, data.data);
						var treeObj = $.fn.zTree.getZTreeObj(params.treeName);
						var nodes = treeObj.transformToArray(treeObj.getNodes());
						if (nodes.length>0) {
							$.each(nodes,function(i,n){
								if (n.type==1) {
									treeObj.expandNode(n, true, false);
								}
							})
						}
					} else {
						_common.alert(true, data.msg);
					}
				}
			},
		})
	}
	
	/*********************
	 * 	调用ajax
	 * 
	 * @param url		地址
	 * @param temp		上传参数
	 * @param fnSubmit	回调函数 {success:fn,fail:fn,init:,complete}
	 * @returns
	 */
	function submitData(url, temp, fnSubmit){
		if (fnSubmit.init) {
			fnSubmit.init();
		}
		$.ajax({
			type:"post",
			url:webRoot+"/system/"+url,
			data:temp,
			async:false,
			success : function(data) {
				if (data) {
					if (data.success) {
						setTimeout(function(){if(fnSubmit.success){fnSubmit.success(data)}},500);
					} else {
						_common.loading(false);
						setTimeout(function(){if(fnSubmit.fail){fnSubmit.fail(data)};_common.alert(true,data.subMsg);},500);
					}
				} 
			},
			complete:function (){
					_common.loading(false);
					if (fnSubmit.complete){
						fnSubmit.complete();
					}
			}
		})
	}
	/**********************   选中菜单节点   **************************/
	function onClick(event, treeId, treeNode, clickFlag) {
		menuNode = treeNode;
	}
	
	/**********************   选中菜单节点后   **************************/
	function beforeClick(treeId, treeNode, clickFlag) {
		$("#addOrModify_content_info").hide();
		$("#addOrModify_content").hide();
		$("#addOrModify_content_btn").show();
		return (treeNode.click != false);
	}
	
	/**********************   重新加载菜单树   **************************/
	function reLoadMenuTree(){
		$("#loding_info").html("正在加载中...");
		menuNode = null;
		$("#addOrModify_content").hide();
		$("#addOrModify_content_btn").hide();
		$("#addOrModify_content_info").show();
		$("#content_info").empty().html("请选择左侧需要操作的菜单");
		$.fn.zTree.destroy("menuTree");//销毁部门树
		loadingTree({treeName:"menuTree",url:"100100101100",temp:{code:$("#sel_plat").val()}})
	}
	
	/**********************   加载平台列表   **************************/
	function loadPlatModal(){
		$("#bs-100100101101-modal-lg").modal("show");
		$.post(webRoot+"/system/100100101101X",function(reslt){
			if(reslt){
				if(reslt.success){
					if(reslt.data){
						var _htmls = [];
						var _count = 0;
						for(var i=0;i<reslt.data.length;i++){
							var bl = false;
							for (var j in _existMenuPlat) {
								if(_existMenuPlat[j].code==reslt.data[i]["platCode"]){
									bl=true;
								}
							}
							if (!bl) {
								_count++;
								_htmls[_htmls.length]='<div class="alert '+(i%2==0?"alert-success":"alert-info")+' alert-dismissible fade in" role="alert" style="cursor:pointer" onclick=skipPlatToAdd(this)><div style="display:none">'+reslt.data[i]["platCode"]+'</div><strong>【'+reslt.data[i]["platName"]+'】'+'</strong>'+reslt.data[i]["platDescrip"]+'</div>'
							}
						}
						if(_count==0){
							$("#x_content_04").empty().html('<div class="alert alert-danger alert-dismissible fade in" role="alert"><strong>当前没有可用的平台</strong></div>').show();
						}else{
							$("#x_content_04").empty().html(_htmls.join(""));
						}
						_htmls = null;
					}
				}else{
					$("#x_content_04").html('<div class="alert alert-danger alert-dismissible fade in" role="alert"><strong>错误描述：</strong>'+reslt.subMsg+'</div>').show();
				}
			}
		})
	}
	
	function loadMenuPlat(){
		$.post(webRoot+"/system/100100101100X",function(reslt){
			if(reslt){
				if(reslt.success){
					$("#sel_plat").empty().append("<option value='0'>全选</option>");
					_existMenuPlat = reslt.data;
					for (var i in _existMenuPlat) {
						$("#sel_plat").append("<option value='"+_existMenuPlat[i].code+"' title='"+_existMenuPlat[i].hit+"'>"+_existMenuPlat[i].name+"</option>");
					}
				}
			}
		})
	}

	/**********************   新增平台   **************************/
	function skipPlatToAdd($this){
		var _this = $($this);
		var _platCode = _this.children("div:eq(0)").text();
		if(_platCode){
			$("#bs-100100101101-modal-lg").modal("hide");
			$.post(webRoot+"/system/100100101101",{platCode:_platCode},function(reslt){
				if(reslt){
					if(reslt.success){
						reLoadMenuTree();
						loadMenuPlat();
					}else{
						_common.alert(true,reslt.subMsg);
					}
				}
			})
		}else{
			$("#x_content_04").html('<div class="alert alert-danger alert-dismissible fade in" role="alert"><strong>错误描述：</strong>数据有误,请联系开发人员!</div>').show();
		}
	}
	
	/**********************   远程调取修改菜单的数据   **************************/
	function loadUpdateMenuInfo(code){
		$.post(webRoot+"/system/100100101102X",{code:code},function(reslt){
			if(reslt){
				if(reslt.success){
					var _data = reslt.data;
					for(var _key in _data){
						var _object = $("#txt_"+_key+",#sel_"+_key);
						if(_object.size()>0){
							if(_data[_key]){
								_object.val(_data[_key]);
							}
						}
					}
					$("#addOrModify_content_btn").hide(function(){
						$("#addOrModify_type").val("modify");
						$("#menuName_label").text("当前菜单");
						$("#menuName_info").val(menuNode.name);
						$("#addOrModify_content").slideDown();
					});
				}else{
					_common.alert(true,reslt.subMsg);
				}
			}
		})
	}
